//
//  Engine.h
//  TrackingSim
//
//  Created by Garrett Manka on 2/17/12.
//  Copyright (c) 2012. All rights reserved.
//

#ifndef TrackingSim_Engine_h
#define TrackingSim_Engine_h

namespace Utilities
{
    class Clock;
}

class Engine
{
private:
    
    Engine();
    ~Engine();
    
public:
    
    static void create();
    static Engine* getEngine();
    
    void setRateHz(double rate_hz);
    
    void load();
    void start(int argc, char** argv);
    
private:
    
    static Engine* s_the_instance;
    static bool s_instance_created;
    
    Utilities::Clock* m_clock;
    double m_rate_hz;
};

#endif
